package cn.skylark.wcm.common.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * 注册SwaggerConfig服务
 * 
 * @author :chuhl
 * @since :2017年12月4日14:14:18
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {

  /**
   * 测试API
   * 
   * @return Docket
   */
  @Bean
  public Docket testApi() {
    return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
        .apis(RequestHandlerSelectors.basePackage("cn.skylark.wcm")).paths(PathSelectors.any())
        .build();
  }

  /**
   * APi信息设定
   * 
   * @return ApiInfo
   */
  private ApiInfo apiInfo() {
    return new ApiInfoBuilder().title("Spring Boot中使用Swagger2构建RESTful APIs")
        .description("Springboot API文档").termsOfServiceUrl("").version("1.0").build();
  }
}
